package collection.stream;

import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.Random;

/**
 * 终端环节为流式操作的最后一步，用于获取结果
 */
public class StreamApiDemo2 {
    public static void main(String[] args) {
        Random r = new Random();
        List<Integer> list = new ArrayList<>();
        for (int i = 0; i < 10; i++) {
            list.add(r.nextInt(100));  //0到99的随机数
        }
        System.out.println("原始数据："+list);

        //获取流中的最小值
        Optional<Integer>value = list.stream().min((e1,e2)->e1-e2);
        System.out.println("最小值为："+value.get());

        //获取流中的最大值
        value = list.stream().max((e1,e2)->e1-e2);
        System.out.println("最大值为："+value.get());

        //对集合元素求和（累加所有集合元素）
        value = list.stream().reduce((e1,e2)->e1+e2);
        System.out.println("累加和："+value.get());

        //判断集合中是否有偶数
        boolean anyMatch = list.stream().anyMatch(e->e%2==0);
        System.out.println("是否有偶数："+anyMatch);


    }
}
